//重写push|replace
//第一个参数:告诉原来push方法,你往哪里跳转（传递哪些参数)//第二个参数:成功回调
//第三个参数:失败的回调//call||apply区别
//相同点,都可以调用函数一次,都可以篡改函数的上下文一次
//不痛点: call与apply传递参数: call传递参数用逗号隔开,apply方法执行,传递数组
export const resetPushOrReplace = (func) => {
  return function (location, resolve, reject) {
    if (resolve && reject) {
      func.call(this, location, resolve, reject);
    } else {
      func.call(this, location, () => { }, () => { });
    }
  }
}